package com.wanxi.tcp.demo3服务器对客户端进行回应;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;

/**
 * TCP 客户端,演示ppt上的第一个练习，客户端连接成功后，向服务器发送一个Hello,服务器返回一个你谁啊。
 */
public class TCPClient {
    public static void main(String[] args) throws IOException {
        System.out.println("客户端启动.....");
        // 创建访问服务端的socket
        Socket socket = new Socket("127.0.0.1", 30000);
        // 创建输出流
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("hello".getBytes());
//        outputStream.close();
//        socket.close();//如果在这里关流,会导致整个socket都无法使用
        //仅仅关闭输出流.并写一个结束标记,对socket没有任何影响。试试把这个去掉会发生什么
        socket.shutdownOutput();// 什么时候用：在不能明确的告诉服务器或客户端我给你的数据已经完毙了。这时用这个方法最简单。
        // 创建获取服务器发送消息的输入流
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }
//        if(line!=null){
//        outputStream.write(System.in);
//        }
        // 关闭资源
        bufferedReader.close();
        outputStream.close();
        socket.close();
    }
}
